package br.pb.sistcomp.entity;

/**
 * Interface that represents part the logic in the system
 *
 * @author jefferson Bello, Jefferson.bello@dce.ufpb.br
 * @version 1.0
 *
 * Copyright (C) 2011 SistComp.
 */

/**
 * Interface responsável pela a estratégia de pagamento de uma venda.
 * @author jeffersonbello
 */
public interface I_FormaDePagamento {

    /**
     * Método responsável em ajustar o valor do pagamento de acordo com a forma escolhida, caso o cliente queira pagar com boleto, adcione uma tarifa do boleto ao valor final, caso pague a vista, subtrai um valor ( desconto ) do valor final e caso for cartao, informa o valor de cada parcela
     * @param valorDaCompra do tipo float, representa o valor de uma compra.
     * @return retorna um float onde este representa o valor a ser pago já acrescido de desconto ou acrescimos. 
     */
    public float getValorDoPagamento(float valorDaCompra);

    /**
     * Método responsável em informar o tipo de pagamento de uma compra em particular.
     * @return uma String contendo o tipo escolhido para pagamento.
     */
    public String getTipoDePagamento();
}
